#include<bits/stdc++.h>
using namespace std;

string str;
string arr[105];
bool visit[105];
int p=1;

int main(){
	cin>>str;
	memset(visit,false,sizeof(visit));
	int j;
	for(int i=0;str[i]!='\0';i++){
		if(str[i]=='('){
			arr[p]="()";
			p++;
		}
		else if(str[i]=='['){
			arr[p]="[]";
			p++;			
		}
		else if(str[i]==')'){
			j=p-1;
			while(j>0&&visit[j]){
				--j;
			}
			//match
			if(!visit[j]&&arr[j][0]=='('){
				visit[j]=true;
				visit[p]=true;
				arr[j]="(";
				arr[p]=")";
				p++;
			}
			//unmatch
			else if(j<=0||arr[j][0]=='[' ){
				arr[p]="()";
				visit[p]=true;
				p++;
			}
		}
		else if(str[i]==']'){
			j=p-1;
			while(j>0&&visit[j]){
				--j;
			}
			//match
			if(!visit[j]&&arr[j][0]=='['){
				visit[j]=true;
				visit[p]=true;
				arr[j]="[";
				arr[p]="]";
				p++;
			}
			//unmatch
			else if(j<=0||arr[j][0]=='(' ){
				arr[p]="[]";
				visit[p]=true;
				p++;
			}
		}
	}
	for(int i=0;i<p;i++){
		cout<<arr[i];
	}
	return 0;
}


//	for(int i=0;str[i]!='\0';i++){
//		if(str[i]=='('||str[i]=='['){
//			arr[p]=""+str[i];
//			p++;
//		}
//		else if(str[i]==')'){
//			int j=p-1;
//			while(j>=0&&arr[j].length()>1){
//				j--;
//			}
//			if(j<0||arr[j]=="["){
//				arr[p]="()";
//				p++;
//			}
//			else if(arr[j]=="("){
//				arr[j+1]="("+arr[j];
//				arr[j]="-1";
//				arr[p-1]=arr[p-1]+")";
//				p=j;
//			}
//		}
//		else if(str[i]==']'){
//			int j=p-1;
//			while(j>=0&&arr[j].length()>1){
//				j--;
//			}
//			if(j<0){
//				arr[p]="[]";
//				p++;
//			}
//			else if(arr[j]=="("){
//				arr[p]="[]";
//				p++;
//			}
//			else if(arr[j]=="["){
//				arr[j+1]="["+arr[j+1];
//				arr[j]="-1";
//				arr[p-1]=arr[p-1]+"]";
//				p=j;
//			}
//		}
//	};
//	for(int i=0;i<p;i++){
//		if(arr[p]=="(") cout<<"()";
//		else if(arr[p]=="[") cout<<"[]";
//		else if(arr[p]=="-1") continue;
//		else cout<<arr[p];
//	}
//	return 0;
